/**
 * 函数重载:函数名称相同，但是参数不同的几个函数，就是函数的重载
 */
function add(n1: number, n2: number): number; // 没有函数体
function add(n1: string, n2: string): string; // 没有函数体
function add(n1: number, n2: string): string; // 没有函数体
function add(n1: string, n2: number): string; // 没有函数体

function add(n1: any, n2: any): any {
    return n1 + n2
}

const r1 = add(10, 20)
const r2 = add('a', 'b')
const r3 = add('a', 20)
const r4 = add(10, 'b')

// 在函数的重载中，实现函数是不能被直接调用的，必须符合重载函数(没有函数体的函数)
// const r5 = add({ a: 1 }, { b: 2 })

export { }